home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 6
/
The Arsenal Files 6 (Arsenal Computer).ISO
/
pcboard
/
hb_ec21.zip
/
CNFN.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1996-01-03
|
11KB
|
620 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN005
Boolean BOOLEAN006
Boolean BOOLEAN007
Boolean BOOLEAN008
Boolean BOOLEAN009
Boolean BOOLEAN010
Boolean BOOLEAN011
Boolean TBOOLEAN012(1)
Boolean BOOLEAN013
Boolean BOOLEAN014
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER013
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer TINTEGER017(1)
Integer TINTEGER018(1)
Integer INTEGER019
Integer INTEGER020
Integer INTEGER021
Integer INTEGER022
Integer TINTEGER023(1)
Integer INTEGER024
Integer INTEGER025
Integer INTEGER026
Integer INTEGER027
String STRING001
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String TSTRING012(8)
String TSTRING013(8)
String STRING014
String STRING015
String STRING016
String STRING018
String STRING019
String TSTRING020(9)
String STRING021
String STRING022
String STRING023
String TSTRING024(1)
String STRING025
String STRING026
String STRING027
String STRING028
String STRING029
String STRING030
String STRING031
String TSTRING032(5)
String STRING033
String STRING034
String STRING035
String TSTRING036(1)
String TSTRING037(15)
Byte BYTE001
Word WORD003
Int INT003
Int INT004
Int INT005
Int INT006
Int INT007
Int INT008
Int INT009
Int INT010
Int INT011
Int INT012
Int INT013
Int INT014
Int INT015
Int INT016
Int INT017
Int INT018
BigStr BIGSTR001
Declare Function FUNCTION001(Integer INTEGER001) String
Declare Function FUNCTION004(Integer INTEGER009, Integer INTEGER010, Word WORD001) Boolean
Declare Function FUNCTION005(Integer INTEGER011, Int INT001, Int INT002, Word WORD002) String
Declare Function FUNCTION006(String STRING017, Integer INTEGER012, Boolean BOOLEAN004) String
;------------------------------------------------------------------------------
Goto LABEL007
End
;------------------------------------------------------------------------------
Function FUNCTION001(Integer INTEGER001) String
Boolean BOOLEAN001
String STRING002
BOOLEAN001 = 0
STRING002 = ""
:LABEL001
If (BOOLEAN001) Goto LABEL003
FGet INTEGER001, STRING002
If (Ferr(INTEGER001)) Then
BOOLEAN001 = 1
Else
If ((Trim(STRING002, " ") == "") || (Left(STRING002, 1) == ";")) Goto LABEL002
Goto LABEL003
:LABEL002
Goto LABEL001
Endif
:LABEL003
If (BOOLEAN001 == 1) STRING002 = ""
FUNCTION001 = STRING002
EndFunc
INTEGER003 = 400
STRING004 = ""
STRING005 = ReadLine(PCBDat(), 29)
INTEGER002 = FNext()
FOpen INTEGER002, STRING005, 2, 0
FSeek INTEGER002, INTEGER003 * 0, 0
FRead INTEGER002, STRING004, 25
FClose INTEGER002
STRING003 = Trim(STRING004, " ")
EndFunc
STRING007 = Trim("", " ")
STRING008 = Trim(String(0), " ")
STRING009 = Left(Trim("", " "), 1)
STRING010 = Trim("", " ")
STRING011 = Trim("", " ")
If (Right(STRING011, 1) <> "\") STRING011 = STRING011 + "\"
If ((Len(STRING010) <> 0) && (Left(STRING010, 1) <> ".")) STRING010 = "." + STRING010
If ((STRING009 == "N") || (STRING009 == "A")) STRING009 = ""
INTEGER004 = Len(STRING007)
INTEGER005 = Len(STRING008)
INTEGER006 = Len(STRING009)
INTEGER007 = Len(STRING010)
For INTEGER008 = 1 To 8
TSTRING013(INTEGER008) = 1
Next
TSTRING012(1) = STRING011 + STRING007 + STRING008 + STRING009 + STRING010
TSTRING012(2) = STRING011 + STRING007 + STRING008 + STRING010
TSTRING012(3) = STRING011 + STRING007 + STRING009 + STRING010
TSTRING012(4) = STRING011 + STRING007 + STRING010
TSTRING012(5) = STRING011 + STRING007 + STRING008 + STRING009
TSTRING012(6) = STRING011 + STRING007 + STRING008
TSTRING012(7) = STRING011 + STRING007 + STRING009
TSTRING012(8) = STRING011 + STRING007
If (INTEGER004 + INTEGER005 + INTEGER006 > 8) Then
TSTRING013(1) = 0
TSTRING013(5) = 0
Endif
If (INTEGER007 == 0) Then
TSTRING013(1) = 0
TSTRING013(2) = 0
TSTRING013(3) = 0
TSTRING013(4) = 0
Endif
If (INTEGER004 + INTEGER005 > 8) Then
TSTRING013(2) = 0
TSTRING013(6) = 0
Endif
If (INTEGER004 + INTEGER006 > 8) Then
TSTRING013(3) = 0
TSTRING013(7) = 0
Endif
For INTEGER008 = 1 To 8
If (TSTRING013(INTEGER008)) Then
If (Exist(TSTRING012(INTEGER008))) Then
STRING006 = TSTRING012(INTEGER008)
Goto LABEL004
Endif
Endif
Next
STRING006 = ""
:LABEL004
EndFunc
;------------------------------------------------------------------------------
Function FUNCTION004(Integer INTEGER009, Integer INTEGER010, Word WORD001) Boolean
BigStr BIGSTR001
Boolean BOOLEAN003
Byte BYTE001
Integer INTEGER011
FSeek INTEGER009, INTEGER010 * WORD001 + 16, 0
FRead INTEGER009, BIGSTR001, 1
BOOLEAN003 = (Asc(BIGSTR001) == 0)
FSeek INTEGER009, INTEGER010 * WORD001 + 22, 0
FRead INTEGER009, BYTE001, 1
If (BOOLEAN003) Goto LABEL005
If (CurSec() < BYTE001) Then
FUNCTION004 = 0
ElseIf ((CurSec() >= BYTE001) && (ConfExp(INTEGER010) && !ConfReg(INTEGER010))) Then
FUNCTION004 = 0
Else
FUNCTION004 = 1
Endif
Goto LABEL006
:LABEL005
If (BOOLEAN003) Then
If (ConfReg(INTEGER010)) Then
FUNCTION004 = 1
Goto LABEL006
Endif
FUNCTION004 = 0
Endif
:LABEL006
EndFunc
;------------------------------------------------------------------------------
Function FUNCTION005(Integer INTEGER011, Int INT001, Int INT002, Word WORD002) String
String STRING015
String STRING016
String STRING017
FSeek INT001, INTEGER011 * WORD002 + 2, 0
FSeek INT002, INTEGER011 * 256 + 208, 0
FRead INT001, STRING015, 14
FRead INT002, STRING016, 48
FUNCTION005 = String(STRING015) + String(STRING016)
EndFunc
;------------------------------------------------------------------------------
Function FUNCTION006(String STRING017, Integer INTEGER012, Boolean BOOLEAN004) String
String STRING019
If (BOOLEAN004) Then
FUNCTION006 = Left(STRING017, INTEGER012)
Else
FUNCTION006 = Left(Trim(Right(STRING017, INTEGER012), " "), INTEGER012)
Endif
EndFunc
:LABEL007
STRING026 = PPEPath() + "COLOR.CNF"
INT003 = 0
INT004 = 1
INT005 = 2
INT006 = 3
INT007 = 4
INT008 = 5
INT009 = 6
INT010 = 7
INT011 = 8
INT012 = 9
INT013 = 10
INT014 = 11
INT015 = 12
INT016 = 13
INT017 = 14
INT018 = 15
TSTRING037(0) = "@X1A"
TSTRING037(1) = "@X1C"
TSTRING037(2) = "@X07"
TSTRING037(3) = "@X0A"
TSTRING037(4) = "@X0A"
TSTRING037(5) = "@X0F"
TSTRING037(6) = "@X07"
TSTRING037(7) = "@X0E"
TSTRING037(8) = "@X0E"
TSTRING037(9) = "@X0E"
TSTRING037(10) = "@X0E"
TSTRING037(11) = "@X0F"
TSTRING037(12) = "@X07"
TSTRING037(13) = "@X06"
TSTRING037(14) = "@X06"
TSTRING037(15) = "@X07"
If (Exist(STRING026)) Then
For INTEGER015 = 1 To 16
TSTRING037(INTEGER015 - 1) = ReadLine(STRING026, INTEGER015)
Next
Endif
TSTRING020(0) = TSTRING037(INT004) + "» " + TSTRING037(INT005)
TSTRING020(1) = TSTRING037(INT003) + "»" + TSTRING037(INT004) + "» " + TSTRING037(INT005)
TSTRING020(2) = TSTRING037(INT003) + " »" + TSTRING037(INT004) + "» " + TSTRING037(INT005)
TSTRING020(3) = TSTRING037(INT003) + " »" + TSTRING037(INT004) + "» " + TSTRING037(INT005)
TSTRING020(4) = TSTRING037(INT003) + " »" + TSTRING037(INT004) + "»" + TSTRING037(INT005)
TSTRING020(5) = TSTRING037(INT004) + " «" + TSTRING037(INT003) + "»" + TSTRING037(INT005)
TSTRING020(6) = TSTRING037(INT004) + " «" + TSTRING037(INT003) + "« " + TSTRING037(INT005)
TSTRING020(7) = TSTRING037(INT004) + " «" + TSTRING037(INT003) + "« " + TSTRING037(INT005)
TSTRING020(8) = TSTRING037(INT004) + "«" + TSTRING037(INT003) + "« " + TSTRING037(INT005)
TSTRING020(9) = TSTRING037(INT003) + "« " + TSTRING037(INT005)
INTEGER024 = 2
INTEGER025 = 0
INTEGER027 = 6
BOOLEAN009 = 1
STRING033 = ""
BOOLEAN010 = 0
BOOLEAN011 = 0
BOOLEAN013 = 0
STRING021 = ReadLine(PCBDat(), 31) + ".@@@"
STRING022 = ReadLine(PCBDat(), 31) + ".ADD"
STRING023 = PPEPath() + PPEName() + ".CFG"
STRING027 = PPEPath() + PPEName() + ".CNF"
STRING034 = PPEPath() + "CNALT" + LangExt()
If (!Exist(STRING034)) STRING034 = PPEPath() + "CNALT"
STRING031 = PPEPath() + "CNTEXT" + LangExt()
If (!Exist(STRING031)) STRING031 = PPEPath() + "CNTEXT"
If (Exist(STRING034)) BOOLEAN011 = 1
INTEGER019 = FNext()
FOpen INTEGER019, STRING031, 0, 0
If (Ferr(INTEGER019)) Then
PrintLn "@X0CAn Error Occured. Notify SYSOP Immediately!! @X07"
Log "CNFN.PPE: Unable to open PROMPT FILE! MISSING or Corrupted", 0
Wait
End
Endif
For INTEGER015 = 1 To 5
FGet INTEGER019, TSTRING032(INTEGER015)
Next
FClose INTEGER019
INTEGER019 = FNext()
FOpen INTEGER019, STRING023, 0, 0
If (Ferr(INTEGER019)) Goto LABEL008
INTEGER021 = S2I(FUNCTION001(INTEGER019), 10)
Redim TSTRING024, INTEGER021
Redim TSTRING036, INTEGER021
Redim TINTEGER023, INTEGER021
Redim TBOOLEAN012, INTEGER021
For INTEGER015 = 1 To INTEGER021
TSTRING024(INTEGER015) = FUNCTION001(INTEGER019)
TSTRING036(INTEGER015) = FUNCTION001(INTEGER019)
STRING025 = FUNCTION001(INTEGER019)
If (Upper(STRING025) == "N") STRING025 = "0"
TINTEGER023(INTEGER015) = S2I(STRING025, 10)
TBOOLEAN012(INTEGER015) = (FUNCTION001(INTEGER019) == "Y")
Next
FClose INTEGER019
Goto LABEL009
:LABEL008
INTEGER021 = 1
TSTRING024(1) = "All Conferences"
TSTRING036(1) = "0-" + String(HiConfNum())
TINTEGER023(1) = 0
TBOOLEAN012(1) = 0
:LABEL009
INTEGER026 = (72 - INTEGER027 * INTEGER024) / INTEGER024
INTEGER019 = FNext()
FOpen INTEGER019, STRING027, 0, 0
If (Ferr(INTEGER019)) Then
PrintLn TSTRING032(1)
Log "CNFN.PPE: UNABLE TO OPEN CNF FILE! MISSING or Corrupted", 0
Wait
End
Endif
STRING028 = PPEPath() + FUNCTION001(INTEGER019)
STRING029 = PPEPath() + FUNCTION001(INTEGER019)
BOOLEAN006 = (Upper(FUNCTION001(INTEGER019)) == "Y")
BOOLEAN007 = (Upper(FUNCTION001(INTEGER019)) == "Y")
STRING030 = PPEPath() + FUNCTION001(INTEGER019)
INTEGER024 = S2I(FUNCTION001(INTEGER019), 10)
If ((INTEGER024 < 1) || (INTEGER024 > 9)) INTEGER024 = 2
BOOLEAN009 = (Left(Upper(FUNCTION001(INTEGER019)), 1) == "L")
FClose INTEGER019
INTEGER026 = (72 - INTEGER027 * INTEGER024) / INTEGER024
:LABEL010
If (Exist(STRING034)) Then
DispFile STRING034, 0
Else
Cls
DispFile STRING028, 2 + 1 + 4
Newline
For INTEGER015 = 1 To INTEGER021
PrintLn TSTRING037(INT006) + Right(String(INTEGER015), 3) + TSTRING037(INT007) + ") " + TSTRING037(INT008) + Left(TSTRING024(INTEGER015), 50) + TSTRING037(INT009)
If (Abort()) Break
Next
Endif
ResetDisp
Newline
BOOLEAN010 = 0
STRING025 = "1"
InputStr TSTRING037(INT010) + TSTRING032(2), STRING025, 7, 3, Mask_Num() + "sS", 256 + 0 + 2
If (Trim(Upper(STRING025), " ") == "S") BOOLEAN010 = 1
If (BOOLEAN010) Then
STRING025 = "1"
InputStr TSTRING037(INT011) + TSTRING032(5), STRING025, 7, 3, Mask_Num(), 256 + 0 + 2
PromptStr 70, STRING033, 48, Mask_Ascii(), 128 + 256 + 64 + 2 + 4 + 0
STRING033 = LTrim(RTrim(STRING033, " "), " ")
If (STRING033 == "") Goto LABEL010
Log "Conference Search for " + Upper(STRING033) + "via PPE", 0
Endif
INTEGER022 = S2I(STRING025, 10)
If ((INTEGER022 < 1) || (INTEGER022 > INTEGER021)) Then
PrintLn "@X0C" + TSTRING032(3) + "@X07"
Wait
Goto LABEL010
Endif
Cls
If ((BOOLEAN006 && !BOOLEAN007) && (CurSec() < TINTEGER023(INTEGER022))) Then
DispFile STRING030, 2 + 1 + 4
Wait
Goto LABEL010
ElseIf ((BOOLEAN006 && BOOLEAN007) && (CurSec() < TINTEGER023(INTEGER022))) Then
BOOLEAN008 = 0
For INTEGER015 = TINTEGER017(INTEGER022) To TINTEGER018(INTEGER022)
If (ConfReg(INTEGER015)) BOOLEAN008 = 1
Break
Next
If (BOOLEAN008) Goto LABEL011
DispFile STRING030, 2 + 1 + 4
Wait
Goto LABEL010
Endif
:LABEL011
DispFile STRING029, 2 + 1 + 4
Newline
INTEGER019 = FNext()
FOpen INTEGER019, STRING021, 0, 0
INTEGER020 = FNext()
FOpen INTEGER020, STRING022, 0, 0
FRead INTEGER019, WORD003, 2
Tokenize TSTRING036(INTEGER022)
INTEGER013 = TokCount()
Redim TINTEGER017, INTEGER013
Redim TINTEGER018, INTEGER013
For INTEGER014 = 1 To INTEGER013
STRING035 = GetToken()
If (InStr(STRING035, "-") > 0) Then
TINTEGER017(INTEGER014) = ToInteger(Left(STRING035, InStr(STRING035, "-") - 1))
TINTEGER018(INTEGER014) = ToInteger(Right(STRING035, Len(STRING035) - InStr(STRING035, "-")))
Continue
Endif
TINTEGER017(INTEGER014) = ToInteger(STRING035)
TINTEGER018(INTEGER014) = ToInteger(STRING035)
Next
For INTEGER014 = 1 To INTEGER013
For INTEGER015 = TINTEGER017(INTEGER014) To TINTEGER018(INTEGER014)
BOOLEAN005 = 1
BOOLEAN014 = 0
BOOLEAN013 = 0
STRING019 = FUNCTION005(INTEGER015, INTEGER019, INTEGER020, WORD003)
BOOLEAN013 = (STRING019 <> "")
If (BOOLEAN013) Then
BOOLEAN014 = FUNCTION004(INTEGER019, INTEGER015, WORD003)
BOOLEAN014 = !BOOLEAN014
BOOLEAN005 = 1
Else
BOOLEAN014 = 0
BOOLEAN005 = 0
Endif
If (BOOLEAN010 && BOOLEAN005) Then
BOOLEAN005 = InStr(Upper(STRING019), Upper(STRING033))
Endif
If (BOOLEAN005) Then
If (BOOLEAN014) Goto LABEL012
Print TSTRING037(INT012), Right(String(INTEGER015), INTEGER027), TSTRING037(INT013), "-", TSTRING037(INT014), FUNCTION006(STRING019, INTEGER026, BOOLEAN009), TSTRING037(INT015)
If (GetX() > 65) PrintLn
Goto LABEL013
:LABEL012
If (BOOLEAN014 && TBOOLEAN012(INTEGER022)) Then
Print TSTRING037(INT016), Right(String(INTEGER015), INTEGER027), TSTRING037(INT017), "-", TSTRING037(INT018), FUNCTION006(STRING019, INTEGER026, BOOLEAN009), TSTRING037(INT015)
If (GetX() > 65) PrintLn
Else
If (INTEGER016 > 9) INTEGER016 = 0
Print TSTRING020(INTEGER016)
Print Chr(8), Chr(8), Chr(8), Chr(8), Chr(8)
Inc INTEGER016
Endif
:LABEL013
Else
If (INTEGER016 > 9) INTEGER016 = 0
Print TSTRING020(INTEGER016)
Print Chr(8), Chr(8), Chr(8), Chr(8), Chr(8)
Inc INTEGER016
Endif
If (Abort()) Break
Next
Next
ResetDisp
Print " "
FCloseAll
Newline
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 4 End
; 2 Cls
; 5 Wait
; 76 Goto
; 187 Let
; 7 Print
; 6 PrintLn
; 59 If
; 5 DispFile
; 6 FOpen
; 4 FClose
; 2 FGet
; 2 ResetDisp
; 3 Log
; 2 InputStr
; 1 PromptStr
; 2 Inc
; 4 Newline
; 1 Tokenize
; 5 FSeek
; 6 FRead
; 6 Redim
; 1 FCloseAll
; 6 EndFunc
;
;
; ■ Functions used :
;
; 7 *
; 2 /
; 124 +
; 5 -
; 14 ==
; 4 <>
; 15 <
; 10 <=
; 10 >
; 21 >=
; 45 !
; 29 &&
; 14 ||
; 6 Len(
; 8 Upper()
; 8 Left()
; 6 Right()
; 4 Ferr()
; 10 Chr()
; 1 Asc()
; 4 InStr()
; 2 Abort()
; 1 LTrim()
; 1 RTrim()
; 9 Trim()
; 7 String()
; 2 Mask_Num()
; 1 Mask_Ascii()
; 3 PCBDat()
; 10 PPEPath()
; 4 ReadLine()
; 4 CurSec()
; 1 GetToken()
; 6 Exist()
; 4 S2I()
; 2 LangExt()
; 2 GetX()
; 2 PPEName()
; 1 TokCount()
; 4 ToInteger()
; 3 ConfReg()
; 1 ConfExp()
; 1 HiConfNum()
; 6 FNext()
;
;------------------------------------------------------------------------------
;
; Analysis flags : d
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 10 For/Next
; 0 While/EndWhile
; 25 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------